﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Graphics;
using Knights.Recursos;

namespace Knights
{
    delegate void Funcion();

    class Boton
    {
        private static int ancho = 200;
        private static int largo = 50;

        private Rectangle area;
        private String texto;
        private Funcion funcion;
        private bool selecionado;

        public Boton(int posicionX, int posicionY, String texto, Funcion funcion)
        {
            area = new Rectangle(posicionX, posicionY, ancho, largo);
            this.texto = texto;
            this.funcion = funcion;
        }

        public void Actualizar()
        {
            MouseState mouse = Mouse.GetState();

            selecionado = area.Contains(new Point(mouse.X, mouse.Y));

            if (selecionado && mouse.LeftButton == ButtonState.Pressed)
                funcion();
        }

        public void Dibujar(Juego juego)
        {
            Color color = Color.White;
            if (selecionado)
                color = Color.Yellow;

            float posicionTextoX = area.X + (area.Width - Fuentes.Arial.MeasureString(texto).X) / 2;
            float posicionTextoY = area.Y + (area.Height - Fuentes.Arial.MeasureString(texto).Y) / 2;

            juego.DibujarTexto(Fuentes.Arial, texto, new Vector2(posicionTextoX, posicionTextoY), color);
        }

        public static int Ancho { get { return ancho; } }
    }
}
